﻿using System;
using System.Drawing;
using Tesseract;

namespace CatUtils.Utils.SpecialUtils.VerificationCode
{
    /// <summary>
    /// 验证码辅助
    /// </summary>
    public class RecognitionImg
    {/// <summary>
     /// 获取英文验证码
     /// </summary>
     /// <param name="FilePath"></param>
     /// <returns></returns>
        public string GetEngText(string FilePath)
        {
            FilePath = new VerificationImgClear().HandleImg(FilePath);
            Console.WriteLine(FilePath);

            using (var img = new Bitmap(FilePath))
            {
#pragma warning disable CS1587 // XML 注释没有放在有效语言元素上
                /**
                                需要词库 这是英文的https://sourceforge.net/projects/tesseract-ocr-alt/files/tesseract-ocr-3.02.eng.tar.gz/download
                                请根据需要自行选择其他类型的去下载 https://sourceforge.net/projects/tesseract-ocr-alt/files/
                                 */
                var ocr = new TesseractEngine(@"D:\Users\cat\source\repos\WebSiteSave\WebSiteSave\tessdata", "eng", EngineMode.TesseractAndCube);
#pragma warning restore CS1587 // XML 注释没有放在有效语言元素上
                //目前看仅支持绝对路径，请初始化前检测资源情况
                //请注意，这里可以选择ocr模式，极大提高校准精度 设置ocr.DefaultPageSegMode为PageSegMode.SingleColumn

                var page = ocr.Process(img);
                return page.GetText().Trim();
            }
        }
    }
}